<?php
defined('IN_IA') or exit('Access Denied');

class Recruit {
    /**
     * Comment: 默认行业类别列表
     * Author: zzw
     * Date: 2020/11/25 10:41
     * @return array
     */
    public static function defaultIndustryList(){
        return [
            //技术
            [
                'title' => '技术' ,
                'list'  => [
                    '后端开发' ,
                    '移动开发' ,
                    '测试' ,
                    '运维' ,
                    '数据' ,
                    '项目管理' ,
                    '硬件开发' ,
                    '前端开发' ,
                    '通信' ,
                    '电子半导体' ,
                    '高端技术' ,
                    '人工智能' ,
                    '其他技术'
                ] ,
            ] ,
            //产品
            [
                'title' => '产品' ,
                'list'  => [
                    '产品经理' ,
                    '高端产品' ,
                    '其他产品' ,
                ] ,
            ] ,
            //设计
            [
                'title' => '设计' ,
                'list'  => [
                    '视觉/交互设计' ,
                    '游戏设计' ,
                    '用户研究' ,
                    '高端设计职位' ,
                    '非视觉设计' ,
                    '其他设计' ,
                ] ,
            ] ,
            //运营
            [
                'title' => '运营' ,
                'list'  => [
                    '运营' ,
                    '编辑' ,
                    '客服' ,
                    '高端运营' ,
                    '其他运营' ,
                ] ,
            ] ,
            //市场
            [
                'title' => '市场' ,
                'list'  => [
                    '政府事务' ,
                    '市场/营销' ,
                    '公关媒介' ,
                    '会务会展' ,
                    '广告' ,
                    '高端市场' ,
                    '其他市场' ,
                ] ,
            ] ,
            //人事/财务/行政
            [
                'title' => '人事/财务/行政' ,
                'list'  => [
                    '人力资源' ,
                    '高级管理' ,
                    '行政' ,
                    '财务' ,
                    '法务' ,
                    '其他职能' ,
                ] ,
            ] ,
            //销售
            [
                'title' => '销售' ,
                'list'  => [
                    '销售行政/商务' ,
                    '房地产销售/招商' ,
                    '服务业销售' ,
                    '汽车销售' ,
                    '广告/会展销售' ,
                    '金融销售' ,
                    '外贸销售' ,
                    '销售' ,
                    '课程销售' ,
                    '医疗销售' ,
                    '销售管理' ,
                    '其他销售' ,
                ] ,
            ] ,
            //传媒
            [
                'title' => '传媒' ,
                'list'  => [
                    '采编/写作/出版' ,
                    '影视媒体' ,
                    '其他传媒' ,
                ] ,
            ] ,
            //金融
            [
                'title' => '金融' ,
                'list'  => [
                    '投融资' ,
                    '风控' ,
                    '税务审计' ,
                    '银行' ,
                    '互联网金融' ,
                    '保险' ,
                    '证券' ,
                    '其他金融' ,
                ] ,
            ] ,
            //教育培训
            [
                'title' => '教育培训' ,
                'list'  => [
                    '教育产品研发' ,
                    '教育行政' ,
                    '教师' ,
                    'IT培训' ,
                    '职业培训' ,
                    '特长培训' ,
                    '其他教育培训' ,
                ] ,
            ] ,
            //医疗健康
            [
                'title' => '医疗健康' ,
                'list'  => [
                    '临床试验' ,
                    '医生/医技' ,
                    '护士/护理' ,
                    '健康整形' ,
                    '生物制药' ,
                    '医疗器械' ,
                    '药店' ,
                    '其他医疗健康' ,
                ] ,
            ] ,
            //采购/贸易
            [
                'title' => '采购/贸易' ,
                'list'  => [
                    '采购' ,
                    '进出口贸易' ,
                    '其他采购/贸易' ,
                ] ,
            ] ,
            //供应链/物流
            [
                'title' => '供应链/物流' ,
                'list'  => [
                    '物流' ,
                    '仓储' ,
                    '交通/运输' ,
                    '高端供应链' ,
                    '其他供应链' ,
                ] ,
            ] ,
            //房地产/建筑
            [
                'title' => '房地产/建筑' ,
                'list'  => [
                    '房地产规划开发' ,
                    '设计装修与市政建设' ,
                    '物业管理' ,
                    '高端房地产职位' ,
                    '其他房地产' ,
                ] ,
            ] ,
            //咨询/翻译/法律
            [
                'title' => '咨询/翻译/法律' ,
                'list'  => [
                    '咨询/调研' ,
                    '律师' ,
                    '翻译' ,
                    '其他咨询类' ,
                ] ,
            ] ,
            //旅游
            [
                'title' => '旅游' ,
                'list'  => [
                    '旅游服务' ,
                    '旅游产品开发/策划' ,
                    '其他旅游' ,
                ] ,
            ] ,
            //服务业
            [
                'title' => '服务业' ,
                'list'  => [
                    '餐饮' ,
                    '酒店' ,
                    '零售' ,
                    '美容保健' ,
                    '运动健身' ,
                    '婚礼/花艺' ,
                    '宠物服务' ,
                    '安保/家政/维修' ,
                    '其他服务业' ,
                ] ,
            ] ,
            //生产制造
            [
                'title' => '生产制造' ,
                'list'  => [
                    '生产营运' ,
                    '质量安全' ,
                    '新能源' ,
                    '汽车制造' ,
                    '汽车服务' ,
                    '机械设计/制造' ,
                    '化工' ,
                    '服装/纺织/皮革' ,
                    '技工/普工' ,
                    '其他生产制造' ,
                ] ,
            ] ,
        ];
    }
    /**
     * Comment: 默认职位列表
     * Author: zzw
     * Date: 2020/11/25 14:31
     * @return array
     */
    public static function defaultPositionList(){
        return [
            //技术
            '后端开发'      => [
                'Perl' ,
                'Hadoop' ,
                'Node.js' ,
                '数据采集' ,
                'C++' ,
                'Java' ,
                'Python' ,
                'GIS工程师' ,
                'C' ,
                'Delphi' ,
                'Erlang' ,
                '全栈工程师' ,
                '.NET' ,
                'C#' ,
                'PHP' ,
                'Golang' ,
                'VB' ,
                'Ruby' ,
                '后端开发' ,
                '语音/视频/图形开发'
            ] ,
            '移动开发'      => [
                'JavaScript' ,
                'UE4' ,
                'HTML5' ,
                'Flash开发' ,
                'COCOS2DX' ,
                '移动web前端' ,
                'U3D' ,
                'iOS' ,
                'Android' ,
                '移动开发' ,
            ] ,
            '测试'        => [
                '硬件测试' ,
                '功能测试' ,
                '游戏测试' ,
                '自动化测试' ,
                '测试开发' ,
                '性能测试' ,
                '移动端测试' ,
                '渗透测试' ,
                '测试工程师' ,
                '软件测试' ,
            ] ,
            '运维'        => [
                '运维开发工程师' ,
                '网络安全' ,
                '网络工程师' ,
                '运维工程师' ,
                '系统安全' ,
                'IT技术支持' ,
                'DBA' ,
                '系统工程师' ,
                '系统管理员' ,
            ] ,
            '数据'        => [
                'ETL工程师' ,
                '数据开发' ,
                '数据' ,
                '数据挖掘' ,
                '数据分析师' ,
                '数据架构师' ,
                '数据仓库' ,
            ] ,
            '项目管理'      => [
                '项目专员' ,
                '需求分析工程师' ,
                '项目主管' ,
                '项目助理' ,
                '硬件项目经理' ,
                '实施工程师' ,
                '实施顾问' ,
                '项目经理' ,
            ] ,
            '硬件开发'      => [
                'DSP开发' ,
                'FPGA开发' ,
                '驱动开发' ,
                '射频工程师' ,
                '嵌入式' ,
                'PCB工艺' ,
                'ARM开发' ,
                '硬件工程师' ,
                '单片机' ,
                '电路设计' ,
                '系统集成' ,
                '自动化' ,
            ] ,
            '前端开发'      => [
                'JavaScript' ,
                '前端开发' ,
                'HTML5' ,
                'web前端' ,
                'Flash开发' ,
            ] ,
            '通信'        => [
                '通信项目经理' ,
                '有线传输工程师' ,
                '光网络工程师' ,
                '通信项目专员' ,
                '移动通信工程师' ,
                '通信技术工程师' ,
                '无线/射频通信工程师' ,
                '光传输工程师' ,
                '通信电源工程师' ,
                '通信设备工程师' ,
                '核心网工程师' ,
                '通信标准化工程师' ,
                '通信测试工程师' ,
                '电信交换工程师' ,
                '光通信工程师' ,
                '电信网络工程师' ,
                '通信研发工程师' ,
            ] ,
            '电子半导体'     => [
                '电气设计工程师' ,
                '电气工程师' ,
                'FAE' ,
                '集成电路IC设计' ,
                '电子工程师' ,
                'IC验证工程师' ,
            ] ,
            '高端技术'      => [
                '架构师' ,
                'CTO' ,
                '技术经理' ,
                '技术合伙人' ,
                'IC验证工程师' ,
                '运维总监' ,
                '技术总监' ,
                '测试经理' ,
            ] ,
            '人工智能'      => [
                '语音识别' ,
                '数据挖掘' ,
                '人工智能' ,
                '深度学习' ,
                '算法研究员' ,
                '算法工程师' ,
                '反欺诈/风控算法' ,
                '图像识别' ,
                '机器学习' ,
                '自然语言处理' ,
                '搜索算法' ,
                '推荐算法' ,
                '智能驾驶系统工程师' ,
            ] ,
            '其他技术'      => [
                '其他技术职位' ,
            ] ,
            //产品
            '产品经理'      => [
                '产品经理' ,
                '产品助理' ,
                '产品专员' ,
                '游戏策划' ,
                '网页产品经理' ,
                '硬件产品经理' ,
                '数据产品经理' ,
                '移动产品经理' ,
                '电商产品经理'
            ] ,
            '高端产品'      => [
                '产品VP' ,
                '产品总监' ,
                '游戏制作人' ,
                '高端产品职位'
            ] ,
            '其他产品'      => [
                '其他产品职位' ,
            ] ,
            //设计
            '视觉/交互设计'   => [
                '包装设计' ,
                '网页设计师' ,
                '平面设计' ,
                'Flash设计师' ,
                '动画设计' ,
                '插画师' ,
                '人像修图师' ,
                '美工' ,
                'APP设计师' ,
                'UI设计师' ,
                'CAD设计/制图' ,
                '多媒体设计师' ,
                '视觉设计' ,
                '广告设计' ,
                '漫画师' ,
                '3D设计师' ,
                '原画师' ,
                '设计师助理'
            ] ,
            '游戏设计'      => [
                '游戏角色设计' ,
                '游戏场景设计' ,
                '游戏动作设计' ,
                '游戏界面设计' ,
                '游戏数值策划' ,
                '游戏特效设计' ,
            ] ,
            '用户研究'      => [
                'UX设计师' ,
                '数据分析师' ,
                '用户研究员' ,
                '用户研究总监' ,
                '用户研究经理'
            ] ,
            '高端设计职位'    => [
                '设计总监' ,
                '视觉设计总监' ,
                '高端设计职位' ,
                '设计经理/主管'
            ] ,
            '非视觉设计'     => [
                '橱柜设计' ,
                '陈列设计' ,
                '展览/展示设计' ,
                '珠宝设计' ,
                '服装/纺织设计' ,
                '非视觉设计' ,
                '工业设计' ,
                '家具设计' ,
                '家居设计' ,
                '室内设计' ,
                '照明设计'
            ] ,
            '其他设计'      => [
                '其他设计职位'
            ] ,
            //运营
            '运营'        => [
                '运营助理/专员' ,
                '微信运营' ,
                '品类运营' ,
                '网店店长' ,
                '游戏运营' ,
                '网站运营' ,
                '线下拓展运营' ,
                '策略运营' ,
                '数据运营' ,
                '数据标注' ,
                '内容审核' ,
                '用户运营' ,
                '产品运营' ,
                '商家运营' ,
                '电商运营' ,
                '车辆运营' ,
                '跨境电商运营' ,
                '活动运营' ,
                '社区运营' ,
                '微博运营' ,
                '内容运营' ,
                '新媒体运营' ,
                '直播运营' ,
                '运营' ,
            ] ,
            '编辑'        => [
                '采编' ,
                '文案策划' ,
                '编辑' ,
                '副主编' ,
                '内容编辑' ,
                '网站编辑' ,
                '医学编辑' ,
            ] ,
            '客服'        => [
                '售后客服' ,
                '客服主管' ,
                '客服专员' ,
                '售前客服' ,
                '网络客服' ,
                '客服经理' ,
                '咨询热线/呼叫中心客服' ,
            ] ,
            '高端运营'      => [
                '运营总监' ,
                '客服总监' ,
                '主编' ,
                'COO' ,
                '运营经理/主管' ,
                '高端运营职位' ,
            ] ,
            '其他运营'      => [
                '其他运营职位' ,
            ] ,
            //市场
            '政府事务'      => [
                '政府关系' ,
                '企业党建' ,
                '政策研究' ,
            ] ,
            '市场/营销'     => [
                '网络推广' ,
                '选址开发' ,
                'SEM' ,
                '商业数据分析' ,
                'APP推广' ,
                '市场策划' ,
                '市场顾问' ,
                '营销主管' ,
                '游戏推广' ,
                '商务渠道' ,
                '市场营销' ,
                '市场推广' ,
                '海外市场' ,
                '网络营销' ,
                'SEO' ,
                '活动策划' ,
            ] ,
            '公关媒介'      => [
                '媒介专员' ,
                '品牌公关' ,
                '公关媒介' ,
                '活动策划执行' ,
                '广告协调' ,
                '媒介经理' ,
                '媒介策划' ,
            ] ,
            '会务会展'      => [
                '会议活动策划' ,
                '会展活动执行' ,
                '会议活动执行' ,
                '会展活动策划' ,
                '会务会展' ,
            ] ,
            '广告'        => [
                '策划经理' ,
                '广告' ,
                '广告制作' ,
                '媒介投放' ,
                '美术指导' ,
                '广告创意设计' ,
                '广告审核' ,
                '广告/会展项目经理' ,
                '广告设计' ,
                '广告文案' ,
                '媒介合作' ,
            ] ,
            '高端市场'      => [
                '媒介总监' ,
                'CMO' ,
                '市场总监' ,
                '高端市场职位' ,
                '公关总监' ,
                '创意总监' ,
            ] ,
            '其他市场'      => [
                '其他市场职位' ,
            ] ,
            //人事/财务/行政
            '人力资源'      => [
                '绩效考核' ,
                '人力资源总监' ,
                '组织发展' ,
                '人力资源VP/CHO' ,
                '人力资源专员/助理' ,
                '培训' ,
                '培训' ,
                'HRBP' ,
                '人力资源经理' ,
                '人力资源主管' ,
                '薪资福利' ,
                '员工关系' ,
            ] ,
            '行政'        => [
                '行政总监' ,
                '经理助理' ,
                '后勤' ,
                '行政主管' ,
                '行政经理' ,
                '前台' ,
                '行政专员/助理' ,
            ] ,
            '财务'        => [
                '审计' ,
                '财务' ,
                '税务' ,
                '总账会计' ,
                '结算' ,
                '财务经理' ,
                '出纳' ,
                'CFO' ,
                '财务主管' ,
                '财务总监' ,
                '财务顾问' ,
                '会计' ,
                '成本' ,
            ] ,
            '法务'        => [
                '法务经理' ,
                '法律顾问' ,
                '法务总监' ,
                '法务主管' ,
                '法务专员/助理' ,
                '律师' ,
            ] ,
            '高级管理'      => [
                '高级管理职位' ,
                '分公司/代表处负责人' ,
                '副总裁/副总经理/VP' ,
                '联合创始人' ,
                '合伙人' ,
                '总裁/总经理/CEO' ,
                '董事会秘书' ,
                '区域负责人' ,
                '总助/CEO助理/董事长助理' ,
            ] ,
            '其他职能'      => [
                '网络其他职能职位推广' ,
            ] ,
            //销售
            '销售行政/商务'   => [
                '商务总监' ,
                '商务经理' ,
                '商务专员' ,
                '销售助理' ,
                '销售运营' ,
            ] ,
            '房地产销售/招商'  => [
                '房地产销售总监' ,
                '地产中介' ,
                '房地产销售/招商' ,
                '置业顾问' ,
                '物业招商管理' ,
            ] ,
            '服务业销售'     => [
                '珠宝销售' ,
                '美容顾问' ,
                '彩妆顾问' ,
                '瘦身顾问' ,
                '旅游顾问' ,
                '会籍顾问' ,
            ] ,
            '汽车销售'      => [
                '汽车配件销售' ,
                '汽车销售' ,
            ] ,
            '广告/会展销售'   => [
                '媒介顾问' ,
                '广告销售' ,
                '会展活动销售' ,
                '会议活动销售' ,
            ] ,
            '金融销售'      => [
                '保险顾问' ,
                '理财顾问' ,
                '证券经纪人' ,
                '信用卡销售' ,
            ] ,
            '外贸销售'      => [
                '外贸经理' ,
                '外贸业务员' ,
            ] ,
            '销售'        => [
                '大客户代表' ,
                '销售专员' ,
                '销售' ,
                '销售工程师' ,
                '销售顾问' ,
                '网络销售' ,
                '代理商销售' ,
                '客户代表' ,
                'BD经理' ,
                '电话销售' ,
                '渠道销售' ,
                '客户经理' ,
            ] ,
            '课程销售'      => [
                '留学顾问' ,
                '招生顾问' ,
                '课程顾问' ,
            ] ,
            '医疗销售'      => [
                '医疗销售' ,
                '医疗器械销售' ,
                '医药代表' ,
                '医疗销售' ,
                '健康顾问' ,
                '医美咨询' ,
            ] ,
            '销售管理'      => [
                '销售总监' ,
                '区域总监' ,
                '团队经理' ,
                '销售经理' ,
                '城市经理' ,
                '销售管理' ,
                '团队经理' ,
                '销售VP' ,
            ] ,
            '其他销售'      => [
                '其他销售职位' ,
            ] ,
            //传媒
            '采编/写作/出版'  => [
                '自媒体' ,
                '总编' ,
                '采编/写作/出版' ,
                '排版设计' ,
                '撰稿人' ,
                '编辑' ,
                '记者' ,
                '校对录入' ,
            ] ,
            '影视媒体'      => [
                '影视策划' ,
                '主播助理' ,
                '摄影/摄像' ,
                '化妆/造型/服装' ,
                '后期制作' ,
                '影视媒体' ,
                '音频编辑' ,
                '主持人/DJ' ,
                '演员/配音/模特' ,
                '导演/编导' ,
                '影视发行' ,
                '灯光师' ,
                '主播' ,
                '录音/音效' ,
                '音频编辑' ,
                '编剧' ,
                '视频编辑' ,
                '后期制作' ,
                '经纪人' ,
                '影视特效' ,
                '放映员' ,
                '制片人' ,
                '剪辑师' ,
                '艺人助理' ,
            ] ,
            '其他传媒'      => [
                '其他传媒职位' ,
            ] ,
            //金融
            '投融资'       => [
                '投资总监' ,
                '其他投融资职位' ,
                '行业研究' ,
                '资产管理' ,
                '投资VP' ,
                '投资顾问' ,
                '投资合伙人' ,
                '投融资' ,
                '投后管理' ,
                '投资经理' ,
                '并购' ,
                '投资助理' ,
            ] ,
            '风控'        => [
                '风控' ,
                '合规稽查' ,
                '律师' ,
                '资信评估' ,
            ] ,
            '税务审计'      => [
                '会计' ,
                '法务' ,
                '清算' ,
                '审计' ,
            ] ,
            '银行'        => [
                '银行' ,
                '信贷管理' ,
                '柜员' ,
                '风控' ,
                '大堂经理' ,
                '商务渠道' ,
                '客户经理' ,
                '分析师' ,
            ] ,
            '互联网金融'     => [
                '金融产品经理' ,
                '分析师' ,
                '清算' ,
                '风控' ,
                '审计' ,
                '催收员' ,//传说中的打手？？？
                '互联网金融' ,
                '投资经理' ,
            ] ,
            '保险'        => [
                '保险精算师' ,
                '保险理赔' ,
            ] ,
            '证券'        => [
                '交易员' ,
                '证券分析师' ,
                '证券' ,
            ] ,
            '其他金融'      => [
                '其他金融职位' ,
            ] ,
            //教育培训
            '教育产品研发'    => [
                '培训策划' ,
                '培训师' ,
                '教育产品研发' ,
                '课程编辑' ,
                '培训研究' ,
                '课程设计' ,
            ] ,
            '教育行政'      => [
                '教学管理' ,
                '教务管理' ,
                '园长/副园长' ,
                '校长/副校长' ,
                '教育行政' ,
                '班主任/辅导员' ,
            ] ,
            '教师'        => [
                '就业老师' ,
                '其他外语教师' ,
                '英语教师' ,
                '托管老师' ,
                '幼教' ,
                '体育教师' ,
                '生物教师' ,
                '文科教师' ,
                '高中教师' ,
                '日语教师' ,
                '早教老师' ,
                '助教' ,
                '化学教师' ,
                '小学教师' ,
                '体育教师' ,
                '理科教师' ,
                '音乐教师' ,
                '教师' ,
                '物理教师' ,
                '美术教师' ,
                '数学教师' ,
                '初中教师' ,
                '家教' ,
            ] ,
            'IT培训'      => [
                'iOS培训讲师' ,
                'C++培训讲师' ,
                'PHP培训讲师' ,
                'IT培训' ,
                'Unity 3D培训讲师' ,
                '软件测试培训讲师' ,
                'Android培训讲师' ,
                'Web前端培训讲师' ,
                'JAVA培训讲师' ,
                'UI设计培训讲师' ,
                '动漫培训讲师' ,
                '.NET培训讲师' ,
            ] ,
            '职业培训'      => [
                '财会培训讲师' ,
                '培训师' ,
                '拓展培训' ,
                'HR培训讲师' ,
            ] ,
            '特长培训'      => [
                '跆拳道教练' ,
                '篮球教练' ,
                '羽毛球教练' ,
                '其他运动教练' ,
                '表演教师' ,
                '乐高教师' ,
                '轮滑教练' ,
                '吉他教师' ,
                '机器人教师' ,
                '健身教练' ,
                '书法教师' ,
                '舞蹈老师' ,
                '瑜伽老师' ,
                '钢琴教师' ,
                '古筝教师' ,
                '武术教练' ,
                '游泳教练' ,
            ] ,
            '其他教育培训'    => [
                '其他教育培训职位' ,
            ] ,
            //医疗健康
            '临床试验'      => [
                '临床研究' ,
                '临床协调' ,
                '临床项目经理' ,
                '医学总监' ,
                '临床数据分析' ,
            ] ,
            '医生/医技'     => [
                '中医' ,
                '牙科医生' ,
                '全科医生' ,
                '药剂师' ,
                '心理医生' ,
                '检验科医师' ,
                '医生助理' ,
                'B超医生' ,
                '医学影像医师' ,
                '放射科医师' ,
                '内科医生' ,
                '验光师' ,
                '医生' ,
                '康复治疗师' ,
            ] ,
            '护士/护理'     => [
                '护士' ,
                '导医' ,
                '护士长' ,
            ] ,
            '健康整形'      => [
                '整形师' ,
                '营养师' ,
                '针灸推拿' ,
                '理疗师' ,
                '健康整形' ,
            ] ,
            '生物制药'      => [
                '医药项目经理' ,
                '药品注册' ,
                '医药研发' ,
                '生物制药' ,
                '药品生产' ,
            ] ,
            '医疗器械'      => [
                '医疗器械研发' ,
                '医疗器械生产/质量管理' ,
                '医疗器械注册' ,
            ] ,
            '药店'        => [
                '药店店长' ,
                '执业药师/驻店药师' ,
                '药店店员' ,
            ] ,
            '其他医疗健康'    => [
                '其他医疗健康职位' ,
            ] ,
            //采购/贸易
            '采购'        => [
                '采购工程师' ,
                '商品经理' ,
                '采购总监' ,
                '买手' ,
                '采购助理' ,
                '采购主管' ,
                '采购专员' ,
                '采购经理' ,
                '供应商质量工程师' ,
            ] ,
            '进出口贸易'     => [
                '单证员' ,
                '报关/报检员' ,
                '进出口贸易' ,
                '贸易跟单' ,
            ] ,
            '其他采购/贸易'   => [
                '其他采购/贸易类职位' ,
            ] ,
            //供应链/物流
            '物流'        => [
                '调度员' ,
                '供应链经理' ,
                '货运代理专员' ,
                '物流运营' ,
                '物流专员' ,
                '物流跟单' ,
                '水/空/陆运操作' ,
                '供应链专员' ,
                '核销员' ,
                '物流经理' ,
                '物流/仓储项目经理' ,
                '货运代理经理' ,
            ] ,
            '仓储'        => [
                '仓库经理' ,
                '仓库文员' ,
                '配/理/拣/发货' ,
                '仓储' ,
                '仓库管理员' ,
            ] ,
            '交通/运输'     => [
                '货运司机' ,
                '运输经理/主管' ,
                '交通/运输' ,
                '商务司机' ,
                '配送员' ,
                '驾校教练' ,
                '网约车司机' ,
                '代驾司机' ,
                '快递员' ,
            ] ,
            '高端供应链'     => [
                '物流总监' ,
                '高端供应链职位' ,
                '供应链总监' ,
            ] ,
            '其他供应链'     => [
                '其他供应链职位' ,
            ] ,
            //房地产/建筑
            '房地产规划开发'   => [
                '房地产策划' ,
                '房地产规划开发' ,
                '房产评估师' ,
                '地产项目管理' ,
                '地产招投标' ,
            ] ,
            '设计装修与市政建设' => [
                '消防工程师' ,
                '装修项目经理' ,
                '工程造价' ,
                '建筑工程师' ,
                '工程监理' ,
                '建筑施工现场管理' ,
                '施工员' ,
                '工程预算' ,
                '园林/景观设计' ,
                '施工安全员' ,
                'BIM工程师' ,
                '土木/土建/结构工程师' ,
                '建筑设计师' ,
                '室内设计' ,
                '幕墙工程师' ,
                '建筑机电工程师' ,
                '材料员' ,
                '软装设计师' ,
                '测绘/测量' ,
                '城市规划设计' ,
                '弱电工程师' ,
                '设计装修与市政建设' ,
                '暖通工程师' ,
                '资料员' ,
                '给排水工程师' ,
            ] ,
            '物业管理'      => [
                '物业管理员' ,
                '绿化工' ,
                '物业经理' ,
                '物业维修' ,
            ] ,
            '高端房地产职位'   => [
                '高端房地产职位' ,
                '地产招投标总监' ,
                '地产策划总监' ,
                '地产项目总监' ,
            ] ,
            '其他房地产'     => [
                '其他房地产职位' ,
            ] ,
            //咨询/翻译/法律
            '咨询/调研'     => [
                '咨询/调研' ,
                '市场调研' ,
                '人力资源咨询顾问' ,
                '婚恋咨询师' ,
                '咨询经理' ,
                '猎头顾问' ,
                '咨询总监' ,
                '财务咨询顾问' ,
                'IT咨询顾问' ,
                '知识产权/专利/商标代理人' ,
                '其他咨询顾问' ,
                '企业管理咨询' ,
                '数据分析师' ,
                '战略咨询' ,
                '咨询项目管理' ,
                '心理咨询师' ,
            ] ,
            '律师'        => [
                '律师助理' ,
                '知识产权律师' ,
                '专利律师' ,
                '事务所律师' ,
                '法务' ,
            ] ,
            '翻译'        => [
                '日语翻译' ,
                '俄语翻译' ,
                '英语翻译' ,
                '法语翻译' ,
                '德语翻译' ,
                '西班牙语翻译' ,
                '韩语/朝鲜语翻译' ,
                '其他语种翻译' ,
            ] ,
            '其他咨询类'     => [
                '其他咨询/翻译类职位' ,
            ] ,
            //旅游
            '旅游服务'      => [
                '计调' ,
                '导游' ,
                '讲解员' ,
                '旅游服务' ,
                '预定票务' ,
                '签证专员' ,
            ] ,
            '旅游产品开发/策划' => [
                '旅游产品经理' ,
                '旅游产品开发/策划' ,
                '旅游策划师' ,
            ] ,
            '其他旅游'      => [
                '其他旅游职位' ,
            ] ,
            //服务业
            '餐饮'        => [
                '后厨' ,
                '西餐厨师' ,
                '洗碗工' ,
                '面点师' ,
                '餐饮店长' ,
                '签证专员' ,
                '烧烤师傅' ,
                '茶艺师' ,
                '咖啡师' ,
                '西点师' ,
                '行政总厨' ,
                '送餐员' ,
                '餐饮' ,
                '配菜打荷' ,
                '厨师' ,
                '日料厨师' ,
                '餐饮学徒' ,
                '凉菜厨师' ,
                '收银' ,
                '领班' ,
                '传菜员' ,
                '服务员' ,
                '中餐厨师' ,
                '厨师长' ,
            ] ,
            '酒店'        => [
                '酒店经理' ,
                '客房服务员' ,
                '前厅经理' ,
                '客房经理' ,
                '礼仪/迎宾/接待' ,
                '酒店前台' ,
                '收银' ,
            ] ,
            '零售'        => [
                '督导/巡店' ,
                '导购' ,
                '门店店长' ,
                '陈列员' ,
                '理货员' ,
                '防损员' ,
                '卖场经理' ,
                '促销员' ,
                '收银' ,
                '店员/营业员' ,
            ] ,
            '美容保健'      => [
                '美发学徒' ,
                '美甲师' ,
                '化妆师' ,
                '发型师' ,
                '养发师' ,
                '美容师' ,
                '足疗师' ,
                '按摩师' ,
                '美体师' ,
                '美容店长' ,
                '纹绣师' ,
                '美睫师' ,
            ] ,
            '运动健身'      => [
                '舞蹈老师' ,
                '救生员' ,
                '健身教练' ,
                '瑜伽老师' ,
                '健身' ,
                '游泳教练' ,
                '美体教练' ,
            ] ,
            '婚礼/花艺'     => [
                '婚礼策划' ,
                '花艺师' ,
            ] ,
            '宠物服务'      => [
                '宠物医生' ,
                '宠物美容' ,
            ] ,
            '安保/家政/维修'  => [
                '护工' ,
                '消防中控员' ,
                '育婴师' ,
                '押运员' ,
                '保安' ,
                '地铁安检' ,
                '保安经理' ,
                '家电维修' ,
                '月嫂' ,
                '产后康复师' ,
                '保姆' ,
                '保洁' ,
                '手机维修' ,
                '保洁经理' ,
            ] ,
            '其他服务业'     => [
                '其他服务业职位' ,
            ] ,
            //生产制造
            '生产营运'      => [
                '生产营运' ,
                '生产跟单' ,
                '厂长' ,
                '生产员' ,
                '生产组长/拉长' ,
                '生产设备管理' ,
                '生产总监' ,
                '生产计划管理' ,
                '车间主任' ,
            ] ,
            '质量安全'      => [
                '生产安全员' ,
                '认证工程师' ,
                '审核员' ,
                '质量管理/测试' ,
                '汽车质量工程师' ,
                '可靠度工程师' ,
                '体系工程师' ,
                '故障分析师' ,
            ] ,
            '新能源'       => [
                '线束设计' ,
                '电机工程师' ,
                '充电桩设计' ,
                '电池工程师' ,
            ] ,
            '汽车制造'      => [
                '汽车项目管理' ,
                '车身/造型设计' ,
                '汽车零部件设计' ,
                '动力系统工程师' ,
                '内外饰设计工程师' ,
                '汽车电子工程师' ,
                '汽车设计' ,
                '底盘工程师' ,
            ] ,
            '汽车服务'      => [
                '汽车维修' ,
                '二手车评估师' ,
                '汽车服务顾问' ,
                '汽车美容' ,
                '汽车定损理赔' ,
                '4S店店长' ,
                '维修站长' ,
            ] ,
            '机械设计/制造'   => [
                '机电工程师' ,
                '机械维修/保养' ,
                '注塑工程师' ,
                '热设计工程师' ,
                '材料工程师' ,
                '夹具工程师' ,
                '机械制图' ,
                '焊接工程师' ,
                '铸造/锻造工程师' ,
                '精益工程师' ,
                '机械工程师' ,
                '机械设计/制造' ,
                '冲压工程师' ,
                '机械设备工程师' ,
                '工业工程师' ,
                '工艺/制程工程师' ,
                'CNC/数控' ,
                '模具工程师' ,
                '机械设计师' ,
                '机械结构工程师' ,
            ] ,
            '化工'        => [
                '涂料研发' ,
                '化学分析' ,
                '化妆品研发' ,
                '实验室技术员' ,
                '食品/饮料研发' ,
                '化工项目经理' ,
                '化工工程师' ,
            ] ,
            '服装/纺织/皮革'  => [
                '服装/纺织/皮革跟单' ,
                '打样/制版' ,
                '面料辅料开发' ,
            ] ,
            '技工/普工'     => [
                '注塑工' ,
                '焊工' ,
                '缝纫工' ,
                '折弯工' ,
                '铲车司机' ,
                '锅炉工' ,
                '氩弧焊工' ,
                '搬运工' ,
                '铣工' ,
                '木工' ,
                '叉车工' ,
                '喷塑工' ,
                '空调工' ,
                '车工' ,
                '包装工' ,
                '样衣工' ,
                '电工' ,
                '切割工' ,
                '抛光工' ,
                '电镀工' ,
                '油漆工' ,
                '组装工' ,
                '普工/操作工' ,
                '磨工' ,
                '铆工' ,
                '学徒工' ,
                '电梯工' ,
                '机修工' ,
                '钳工' ,
                '模具工' ,
                '普工/操作工' ,
            ] ,
            '其他生产制造'    => [
                '其他生产制造职位' ,
            ] ,
        ];
    }
    /**
     * Comment: 默认标签列表
     * Author: zzw
     * Date: 2020/12/1 10:23
     * @return array
     */
    public static function defaultLabelList(){
        return [
            //1=学历要求
            ['type' => 1 , 'title' => '中专/技校'] ,
            ['type' => 1 , 'title' => '高中'] ,
            ['type' => 1 , 'title' => '大专'] ,
            ['type' => 1 , 'title' => '本科'] ,
            ['type' => 1 , 'title' => '硕士'] ,
            //2=职位福利
            ['type' => 2 , 'title' => '加班补助'] ,
            ['type' => 2 , 'title' => '社保'] ,
            ['type' => 2 , 'title' => '年终奖'] ,
            ['type' => 2 , 'title' => '节日福利'] ,
            ['type' => 2 , 'title' => '年假'] ,
            ['type' => 2 , 'title' => '婚假'] ,
            ['type' => 2 , 'title' => '交通补贴'] ,
            ['type' => 2 , 'title' => '餐补'] ,
            ['type' => 2 , 'title' => '医保'] ,
            ['type' => 2 , 'title' => '话费补贴'] ,
            ['type' => 2 , 'title' => '住房公积金'] ,
            ['type' => 2 , 'title' => '包吃包住'] ,
            //3=经验标签
            ['type' => 3 , 'title' => '1年以下'] ,
            ['type' => 3 , 'title' => '1~3年'] ,
            ['type' => 3 , 'title' => '3~5年'] ,
            ['type' => 3 , 'title' => '5~10年'] ,
            ['type' => 3 , 'title' => '10年以上'] ,
            //4=企业规模
            ['type' => 4 , 'title' => '10人以下'] ,
            ['type' => 4 , 'title' => '10~49人'] ,
            ['type' => 4 , 'title' => '50~99人'] ,
            ['type' => 4 , 'title' => '100~499人'] ,
            ['type' => 4 , 'title' => '500~1000人'] ,
            ['type' => 4 , 'title' => '1000人以上'] ,
            //5=企业性质
            ['type' => 5 , 'title' => '个体商户'] ,
            ['type' => 5 , 'title' => '私营企业'] ,
            ['type' => 5 , 'title' => '股份制企业'] ,
            ['type' => 5 , 'title' => '国有企业'] ,
            ['type' => 5 , 'title' => '政府机关'] ,
            ['type' => 5 , 'title' => '外资企业'] ,
        ];
    }


    /**
     * Comment: 根据条件获取对应的行业信息
     * Author: zzw
     * Date: 2020/12/1 11:50
     * @param array $where
     * @param array $field
     * @return array|bool|mixed
     */
    public static function getIndustryList(array $where = [],array $field = []){
        global $_W;
        $where['uniacid'] = $_W['uniacid'];
        $where['aid']     = $_W['aid'];
        return pdo_getall(PDO_NAME."recruit_industry",$where,$field,'','sort DESC,id DESC');
    }
    /**
     * Comment: 根据条件获取对应的职位信息
     * Author: zzw
     * Date: 2020/12/1 11:52
     * @param array $where
     * @param array $field
     * @return array|bool|mixed
     */
    public static function getPositionList(array $where = [],array $field = []){
        global $_W;
        $where['uniacid'] = $_W['uniacid'];
        $where['aid']     = $_W['aid'];
        return pdo_getall(PDO_NAME."recruit_position",$where,$field,'','sort DESC,id DESC');
    }
    /**
     * Comment: 根据条件获取对应的标签信息列表
     * Author: zzw
     * Date: 2020/12/2 14:21
     * @param int   $type
     * @param array|string $field
     * @return array|bool|mixed
     */
    public static function getLabelList(int $type,$field = ['id','title']){
        global $_W;
        if(is_array($field)){
            $where['uniacid'] = $_W['uniacid'];
            $where['aid']     = $_W['aid'];
            $where['type']    = $type;
            return pdo_getall(PDO_NAME."recruit_label",$where,$field,'','sort DESC,id DESC');
        }else{
            $where = " WHERE uniacid = {$_W['uniacid']} AND aid = {$_W['aid']} AND type ={$type} ";
            $sql = "SELECT {$field} FROM".tablename(PDO_NAME."recruit_label") .$where." ORDER BY sort DESC,id DESC " ;
            return pdo_fetchall($sql);
        }
    }
    /**
     * Comment: 根据条件获取对应的企业信息列表
     * Author: zzw
     * Date: 2020/12/8 17:22
     * @param string $diyWhere
     * @param string $field
     * @param string $order
     * @param string $limit
     * @return array|bool|mixed
     */
    public static function getEnterpriseList(string $diyWhere = '',string $field = '*',string $order = 'ORDER BY listorder DESC,id DESC',string $limit = ''){
        global $_W;
        //sql语句生成
        $where = " WHERE uniacid = {$_W['uniacid']} AND aid = {$_W['aid']} AND recruit_switch = 1 {$diyWhere} ";
        $sql = "SELECT {$field} FROM ".tablename(PDO_NAME."merchantdata");
        //列表信息获取
        $list = pdo_fetchall($sql.$where.$order.$limit);
        foreach($list as $index => &$item){
            $item = self::handleEnterpriseInfo($item);
        }
        //总数获取
        $totalSql = str_replace($field,'count(*)',$sql);
        $total = pdo_fetchcolumn($totalSql.$where);

        return [$list,$total];
    }
    /**
     * Comment: 根据条件获取对应的招聘信息列表
     * Author: zzw
     * Date: 2020/12/9 15:16
     * @param string $diyWhere
     * @param string $field
     * @param string $order
     * @param string $limit
     * @return array
     */
    public static function getRecruitList(string $diyWhere = '',string $field = '*',string $order = 'ORDER BY sort DESC,id DESC',string $limit = ''){
        global $_W;
        //sql语句生成
        $where = " WHERE uniacid = {$_W['uniacid']} AND aid = {$_W['aid']} {$diyWhere} ";
        $sql = "SELECT {$field} FROM ".tablename(PDO_NAME."recruit_recruit");
        //列表信息获取
        $list = pdo_fetchall($sql.$where.$order.$limit);
        foreach($list as $index => &$item){
            $item = self::handleRecruitInfo($item);
        }
        //总数获取
        $totalSql = str_replace($field,'count(*)',$sql);
        $total = pdo_fetchcolumn($totalSql.$where);

        return [$list,$total];
    }
    /**
     * Comment: 根据条件获取对应的简历信息列表
     * Author: zzw
     * Date: 2020/12/10 9:47
     * @param array  $where
     * @param array  $field
     * @param string $order
     * @param array  $limit
     * @return array
     */
    public static function getResumeList(array $where = [],array $field = [],string $order = 'id DESC',array $limit = []){
        global $_W;
        //条件补充
        $where['uniacid'] = $_W['uniacid'];
        $where['aid']     = $_W['aid'];
        //信息列表获取
        $list = pdo_getall(PDO_NAME."recruit_resume",$where,$field,'',trim($order),$limit);
        foreach($list as $key => &$val){
            $val = self::handleResumeInfo($val);
        }
        //总数获取
        $total = pdo_count(PDO_NAME."recruit_resume",$where);

        return [$list,$total];
    }


    /**
     * Comment: 处理传递进来的单条招聘信息
     * Author: zzw
     * Date: 2020/12/10 18:31
     * @param array $item
     * @return mixed
     */
    public static function handleRecruitInfo(array $item){
        //判断是否获取行业职位信息
        if($item['industry_pid']) $item['industry'] = pdo_getcolumn(PDO_NAME."recruit_industry",['id'=>$item['industry_pid']],'title');
        if($item['industry_id']) $item['sub_industry'] = pdo_getcolumn(PDO_NAME."recruit_industry",['id'=>$item['industry_id']],'title');
        if($item['position_id']) $item['position'] = pdo_getcolumn(PDO_NAME."recruit_position",['id'=>$item['position_id']],'title');
        //获取发布方信息
        if($item['recruitment_type'] == 1 && $item['release_mid']){
            //个人招聘
            $user = pdo_get(PDO_NAME."member",['id'=>$item['release_mid']],['nickname','avatar']);
            $item['release'] = [
                'name'              => $user['nickname'] ,
                'logo'              => tomedia($user['avatar']) ,
                'nature'            => '个体户' ,
                'scale'             => '个人发布' ,
                'industry'          => $item['industry'],
                'is_authentication' => 0
            ];
            //判断是否认证
            if (p('attestation')) if (Attestation::checkAttestation(1,$item['release_mid'])['attestation'] == 1) $item['release']['is_authentication'] = 1;
        }else if($item['recruitment_type'] == 2 && $item['release_sid']){
            //企业招聘
            $shop = pdo_get(PDO_NAME."merchantdata",['id'=>$item['release_sid']],['storename','logo','recruit_nature_id','recruit_scale_id','recruit_industry_id']);
            $item['release'] = [
                'name'              => $shop['storename'] ,
                'logo'              => tomedia($shop['logo']) ,
                'nature'            => pdo_getcolumn(PDO_NAME . "recruit_label" , ['id' => $shop['recruit_nature_id']] , 'title') ,
                'scale'             => pdo_getcolumn(PDO_NAME . "recruit_label" , ['id' => $shop['recruit_scale_id']] , 'title') ,
                'industry'          => pdo_getcolumn(PDO_NAME . "recruit_industry" , ['id' => $shop['recruit_industry_id']] , 'title') ,
                'is_authentication' => 0
            ];
            //判断是否认证
            if(p('attestation')) if(Attestation::checkAttestation(2,$item['release_sid'])['attestation'] == 2) $item['release']['is_authentication'] = 1;
        }else if(array_key_exists('recruitment_type',$item)){
            //错误数据 不能判断发布方
            $item['release'] = [
                'name'              => '' ,
                'logo'              => ''  ,
                'nature'            => ''  ,
                'scale'             => ''  ,
                'industry'          => ''  ,
                'is_authentication' => 0
            ];
        }
        //判断获取薪资信息
        if($item['job_type'] == 1){
            //全职
            if($item['full_type'] == 1) $item['salary'] = '面议';
            else if($item['full_type'] == 2) $item['salary'] = self::handleSalary($item['full_salary_min'],false).'~'.self::handleSalary($item['full_salary_max']);
            //获取全职福利信息
            if($item['welfare']){
                $welfare = explode(',',$item['welfare']);
                $welfareList = pdo_getall(PDO_NAME."recruit_label",['id IN'=>$welfare],['title']);
                $item['welfare_list'] = array_column($welfareList,'title');
            }
        }else if($item['job_type'] == 2){
            //兼职
            if($item['part_type'] == 1) $item['salary'] = $item['part_salary']."元/时";
            else if($item['part_type'] == 2) $item['salary'] = $item['part_salary']."元/天";
            //判断结算方式
            switch ($item['part_settlement']){
                case 1:$item['settlement'] = '日结';break;
                case 2:$item['settlement'] = '周结';break;
                case 3:$item['settlement'] = '月结';break;
                case 4:$item['settlement'] = '完工结算';break;

            }
        }
        //获取工作区域
        if($item['work_province']) $item['province'] = pdo_getcolumn(PDO_NAME."area",['id'=>$item['work_province']],'name');
        if($item['work_city']) $item['city'] = pdo_getcolumn(PDO_NAME."area",['id'=>$item['work_city']],'name');
        if($item['work_area']) $item['area'] = pdo_getcolumn(PDO_NAME."area",['id'=>$item['work_area']],'name');
        //状态信息处理
        if($item['status']){
            switch ($item['status']){
                case 1:$item['status_text'] = '待付款';break;
                case 2:$item['status_text'] = '审核中';break;
                case 3:$item['status_text'] = '未通过';break;
                case 4:$item['status_text'] = '招聘中';break;
                case 5:$item['status_text'] = '已结束';break;
            }
        }
        //时间信息处理
        if($item['create_time']){
            //获取今天和昨天的开始时间
            $today = strtotime(date("Y-m-d 00:00:00",time()));
            $yestoday = strtotime("-1 day",$today);
            //判断发布时间
            if($item['create_time'] >= $today) $item['release_time'] = '今日';
            else if($item['create_time'] < $today && $item['create_time'] > $yestoday) $item['release_time'] = '昨日';
            else $item['release_time'] = date("m-d",$item['create_time']);
        }
        //距离计算
        if($item['distances']){
            if($item['distances'] < 1000){
                $item['distances_text'] = $item['distances'].'m';
            }else{
                $item['distances_text'] = sprintf("%.2f",$item['distances'] / 1000).'km';
            }
        }
        //获取期望工作地区 取最小一级
        if ($item['area']) $item['region'] = $item['area'];
        else if ($item['city']) $item['region'] = $item['city'];
        else if ($item['province']) $item['region'] = $item['province'];
        //性别要求  性别要求：1=不限，2=男，3=女
        if($item['gender'] == 1) $item['gender_text'] = '男女不限';
        else if($item['gender'] == 2) $item['gender_text'] = '仅限男性';
        else if($item['gender'] == 3) $item['gender_text'] = '仅限女性';
        //年龄要求
        if($item['age_min'] && $item['age_max']) $item['age'] = $item['age_min'].'~'.$item['age_max']."岁";
        //学历要求
        if($item['education_label_id']) $item['education'] = pdo_getcolumn(PDO_NAME."recruit_label",['id'=>$item['education_label_id']],'title');
        else if(array_key_exists('education_label_id',$item))  $item['education'] = '学历不限';
        //经验要求
        if($item['experience_label_id']) $item['experience'] = pdo_getcolumn(PDO_NAME."recruit_label",['id'=>$item['experience_label_id']],'title');
        else if(array_key_exists('experience_label_id',$item))  $item['experience'] = '学历不限';

        return $item;
    }
    /**
     * Comment: 处理传递进来的单条简历信息
     * Author: zzw
     * Date: 2020/12/11 15:59
     * @param $val
     * @return mixed
     */
    public static function handleResumeInfo($val){
        //头像处理
        if($val['avatar']) $val['avatar'] = tomedia($val['avatar']);
        //发布时间
        if($val['create_time']) $val['create_time_text'] = date("Y-m-d",$val['create_time']);
        //性别获取  性别:2=男，3=女
        if($val['gender'] == 2) $val['gender_text'] = '男';
        else if($val['gender'] == 3) $val['gender_text'] = '女';
        //上岗状态:1=随时上岗,2=一周之内,3=一月之内,4=考虑中,5=无换岗意向
        switch ($val['work_status']){
            case 1:$val['work_status_text'] = '随时上岗';break;
            case 2:$val['work_status_text'] = '一周之内';break;
            case 3:$val['work_status_text'] = '一月之内';break;
            case 4:$val['work_status_text'] = '考虑中';break;
            case 5:$val['work_status_text'] = '无换岗意向';break;
        }
        //工作经验获取
        if($val['experience_label_id']) $val['experience'] = pdo_getcolumn(PDO_NAME."recruit_label",['id'=>$val['experience_label_id']],'title');
        //最高学历获取
        if($val['education_label_id']) $val['education'] = pdo_getcolumn(PDO_NAME."recruit_label",['id'=>$val['education_label_id']],'title');
        //年龄获取
        if($val['birth_time']) $val['age'] = self::getAge(date("Y-m-d",$val['birth_time']));
        //期望职位
        if($val['expect_position']){
            $positionIds = explode(',',$val['expect_position']);
            $positionList = pdo_getall(PDO_NAME."recruit_position",['id IN'=>$positionIds],['title']);
            $val['expect_position_list'] = array_column($positionList,'title');

        }
        //工作类型：1=全职，2=兼职
        if($val['job_type'] == 1){
            $val['job_type_text'] = '全职';
            if($val['expect_salary_min'] && $val['expect_salary_max']){
                $val['salary'] = trim(self::handleSalary($val['expect_salary_min']),'K').'~'.self::handleSalary($val['expect_salary_max']);
            }
        }else if($val['job_type'] == 2) {
            $val['job_type_text'] = '兼职';
            $val['salary'] = $val['expect_salary_min'].'~'.$val['expect_salary_max']."元";
        }
        //工作区域
        if($val['expect_work_province']) $val['province'] = pdo_getcolumn(PDO_NAME."area",['id'=>$val['expect_work_province']],'name');
        if($val['expect_work_city']) $val['city'] = pdo_getcolumn(PDO_NAME."area",['id'=>$val['expect_work_city']],'name');
        if($val['expect_work_area']) $val['area'] = pdo_getcolumn(PDO_NAME."area",['id'=>$val['expect_work_area']],'name');
        //获取期望工作地区 取最小一级
        if ($val['area']) $val['region'] = $val['area'];
        else if ($val['city']) $val['region'] = $val['city'];
        else if ($val['province']) $val['region'] = $val['province'];
        //工作经历
        if($val['work_experience']){
            $work = unserialize($val['work_experience']);
            if(is_array($work)){
                foreach ($work as &$workItem){
                    $workItem['start_time'] = date("Y-m-d",$workItem['start_time']);
                    $workItem['end_time'] = date("Y-m-d",$workItem['end_time']);
                }
            }
            $val['work_experience'] = is_array($work) ? $work : [];
        }
        //教育经历
        if($val['educational_experience']){
            $educational = unserialize($val['educational_experience']);
            if(is_array($educational)){
                foreach ($educational as &$educationalItem){
                    $educationalItem['start_time'] = date("Y-m-d",$educationalItem['start_time']);
                    $educationalItem['end_time'] = date("Y-m-d",$educationalItem['end_time']);
                }
            }
            $val['educational_experience'] = is_array($educational) ? $educational : [];
        }

        return $val;
    }
    /**
     * Comment: 处理传递进来的单条企业信息
     * Author: zzw
     * Date: 2020/12/11 18:28
     * @param $item
     * @return mixed
     */
    public static function handleEnterpriseInfo($item){
        if(array_key_exists('logo' , $item)) $item['logo'] = tomedia($item['logo']);
        //是否获取企业性质
        if (array_key_exists('recruit_nature_id' , $item)) $item['nature'] = pdo_getcolumn(PDO_NAME . "recruit_label" , ['id' => $item['recruit_nature_id']] , 'title');
        //是否获取企业规模
        if (array_key_exists('recruit_scale_id' , $item)) $item['scale'] = pdo_getcolumn(PDO_NAME . "recruit_label" , ['id' => $item['recruit_scale_id']] , 'title');
        //是否获取企业行业
        if (array_key_exists('recruit_industry_id' , $item)) $item['industry'] = pdo_getcolumn(PDO_NAME . "recruit_industry" , ['id' => $item['recruit_industry_id']] , 'title');
        //是否获取区域信息
        if($item['provinceid']) $item['area'] = pdo_getcolumn(PDO_NAME . "area" , ['id' => $item['provinceid']] , 'name')."·";
        if($item['areaid']) $item['area'] .= pdo_getcolumn(PDO_NAME . "area" , ['id' => $item['areaid']] , 'name')."·";
        if($item['distid']) $item['area'] .= pdo_getcolumn(PDO_NAME . "area" , ['id' => $item['distid']] , 'name');
        //获取招聘中的招聘信息
        if($item['id']) $item['release_recruit'] = pdo_count(PDO_NAME . "recruit_recruit" , ['release_sid' => $item['id'],'status'=>4]);
        //判断当前企业是否认证   0=未认证，1=已认证
        $item['is_authentication'] = 0;//默认未认证
        if(p('attestation')) if(Attestation::checkAttestation(2,$item['id'])['attestation'] == 2) $item['is_authentication'] = 1;
        //距离计算
        if($item['distances']){
            if($item['distances'] < 1000){
                $item['distances_text'] = $item['distances'].'m';
            }else{
                $item['distances_text'] = sprintf("%.2f",$item['distances'] / 1000).'km';
            }
        }
        //富文本信息处
        if(array_key_exists('introduction',$item)) $item['introduction'] = htmlspecialchars_decode($item['introduction']);
        //相册信息处理
        if(array_key_exists('recruit_adv',$item)){
            $album = unserialize($item['recruit_adv']);
            if (is_array($album)){
                foreach($album as &$img){
                    $img = tomedia($img);
                }
            }
            unset($item['recruit_adv']);
            $item['album'] = is_array($album) ? $album : [];
        }


        return $item;
    }


    /**
     * Comment: 根据日期获取年龄
     * Author: zzw
     * Date: 2020/12/4 14:30
     * @param string $birthday
     * @return false|string
     */
    public static function getAge(string $birthday){
        [$year , $month , $day] = explode("-" , $birthday);
        $year_diff  = date("Y") - $year;
        $month_diff = date("m") - $month;
        $day_diff   = date("d") - $day;
        if ($day_diff < 0 || $month_diff < 0) $year_diff--;
        return $year_diff;
    }
    /**
     * Comment: 薪资金额转换
     * Author: zzw
     * Date: 2020/12/9 14:37
     * @param string $money
     * @param bool   $company
     * @return string
     */
    public static function handleSalary(string $money,bool $company = true){
        //获取小数点前的数字
        if($money >= 1000) $k = floor($money / 1000);
        else $k = 0;
        //获取小数点后的数字
        if($money % 1000 > 0) $k = sprintf("%.1f",$k + (($money % 1000) / 1000));
        //数据拼接
        if($company) return $k."K";
        else return $k;
    }
    /**
     * Comment: 根据条件获取招聘信息推荐列表
     * Author: zzw
     * Date: 2021/1/12 14:58
     * @param int $id               当前招聘信息id
     * @param int $positionId       职位id，如果当前职位不够数量，则会从当前职位对应的子行业中补齐推荐数量
     * @param int $workProvince     省id，仅推荐统一省的招聘信息
     * @param int $num              需要获取的推荐数量
     * @return array|mixed
     */
    public static function getRecruitRecommend(int $id,int $positionId,int $workProvince,int $num){
        $field = "id,title,recruitment_type,release_mid,release_sid,job_type,full_type,full_salary_min,full_salary_max,
        welfare,part_type,part_salary,part_settlement,work_province,work_city,work_area,status,create_time,is_top,industry_pid,industry_id";
        [$list , $total] = self::getRecruitList(" AND id <> {$id} AND work_province = {$workProvince} AND position_id = {$positionId} AND status = 4 " , $field , " ORDER BY rand() " , " LIMIT {$num} ");
        //判断数量是否达标
        if (count($list) < $num) {
            //获取子行业信息  再次查询
            $surplus    = $num - count($list);
            $industryId = pdo_getcolumn(PDO_NAME . "recruit_position" , ['id' => $positionId] , 'industry_id');
            if(count($list) > 0) {
                $ids = array_column($list,'id');
                $ids = array_merge($ids , [$id]);
                $where = " id NOT IN {$ids} ";
            }else{
                $where = " id <> {$id} ";
            }
            [$twoList , $twoTotal] = self::getRecruitList(" AND {$where} AND work_province = {$workProvince} AND industry_id = {$industryId} AND status = 4 " , $field , " ORDER BY rand() " , " LIMIT {$surplus} ");
            $list = array_merge($list , $twoList);
        }
        //删除多余的信息
        foreach ($list as &$item) {
            unset($item['position_id'] , $item['release_mid'] , $item['release_sid'] , $item['full_type'] , $item['full_salary_min'] , $item['full_salary_max'] , $item['welfare'] , $item['part_type'] , $item['part_salary'] , $item['part_settlement'] , $item['work_province'] , $item['work_city'] , $item['work_area'] , $item['create_time'] , $item['province'] , $item['city'] , $item['area'] , $item['job_type'] , $item['distances']);
        }

        return is_array($list) && count($list) > 0 ? $list : [];
    }
    /**
     * Comment: 获取发布相关信息
     * Author: zzw
     * Date: 2020/12/14 16:54
     * @param int $recruitmentType  招聘类型:1=个人招聘,2=企业招聘
     * @param int $mid              发布方用户id
     * @param int $sid              发布方商户id
     * @return array
     */
    public static function getReleaseSituation(int $recruitmentType,int $mid = 0,int $sid = 0){
        global $_W;
        //获取最大免费发布数量  超出限制后发布所需支付的金额
        $totalWhere['uniacid']          = $_W['uniacid'];
        $totalWhere['recruitment_type'] = $recruitmentType;
        if($recruitmentType == 1){
            //个人招聘
            $totalWhere['release_mid'] = $mid;
            $set = Setting::agentsetting_read('recruit_set');
            $releaseNumber = $set['release_number'];//免费发布数量
            $releasePricce = sprintf("%.2f" , $set['release_price']);//超出限制后发布所需支付的金额
        }else{
            //企业招聘
            $totalWhere['release_sid'] = $sid;
            $groupId = pdo_getcolumn(PDO_NAME."merchantdata",['id'=>$sid],'groupid');
            $groupInfo = pdo_get(PDO_NAME."chargelist",['id'=>$groupId],['release_number','release_price']);
            $releaseNumber = $groupInfo['release_number'];//免费发布数量
            $releasePricce = sprintf("%.2f" , $groupInfo['release_price']);//超出限制后发布所需支付的金额
        }
        //获取已经发布的招聘数量
        $total = pdo_count(PDO_NAME."recruit_recruit",$totalWhere);
        //拼装返回信息
        $data = [
            'max'    => $releaseNumber ,//免费发布数量
            'price'  => $releasePricce ,//超出限制后发布所需支付的金额
            'total'  => $total ,//已发布数量
            'is_pay' => ($total >= $releaseNumber && $releasePricce > 0) ? 1 : 0 ,//当前发布是否需要付费  0=不需要，1=需要
        ];

        return $data;
    }
    /**
     * Comment: 招聘信息支付回调处理
     * Date: 2021/1/8 17:04
     * @param $params
     * @throws \GuzzleHttp\Exception\GuzzleException
     */
    public static function payRecruitOrderNotify($params) {
        global $_W;
        //写入异步日志记录
        Util::wl_log('recruit_notify', PATH_DATA . "recruit/data/", $params);
        $order = pdo_get(PDO_NAME."order",['orderno' => $params['tid']],['plugin','id','fkid','fightstatus','num']);
        //更新订单
        $data = array('status' => $params['result'] == 'success' ? 3 : 0);
        $data['paytype'] = $params['type'];
        if ($params['tag']['transaction_id']) $data['transid'] = $params['tag']['transaction_id'];
        $data['paytime'] = TIMESTAMP;
        pdo_update(PDO_NAME . 'order', $data, array('id' => $order['id']));
        $task = array(
            'type'    => $order['plugin'],
            'orderid' => $order['id']
        );
        $task = serialize($task);
        Queue::addTask(2, $task, time(), $order['id']);
        if($order['fightstatus'] == 2){
            //这里是置顶回调
            $endTime =  strtotime("+{$order['num']} days");
            $topData = [
                'is_top' => 1,
                'top_end_time' => $endTime,
            ];
            pdo_update(PDO_NAME."recruit_recruit",$topData,['id'=>$order['fkid']]);
        }else{
            //这里是发布招聘信息的回调
            $recruitId = $order['fkid']; //获取招聘信息id
            //获取招聘信息
            $recruit = pdo_get(PDO_NAME."recruit_recruit",['id'=>$recruitId],['title','recruitment_type','release_mid','release_sid','create_time']);
            //根据是否需要审核 修改招聘信息状态
            $set = Setting::agentsetting_read('recruit_set');
            if($set['is_examine'] == 1) {
                //待审核
                pdo_update(PDO_NAME."recruit_recruit",['status'=>2],['id'=>$recruitId]);
                $tip = '请等待审核';
                //给代理商管理员发送审核消息
                $nickname = pdo_getcolumn(PDO_NAME."member",['id' => $recruit['release_mid']],'nickname');
                $first    = '招聘审核通知';
                $content  = "用户{$nickname}在".date('m月d日H时i分',$recruit['create_time'])."发布了招聘信息";//业务内容
                $status   = '待审核';//处理结果
                $remark   = '请尽快审核！';//备注信息
                $time     = time();//操作时间(时间戳)

                News::noticeAgent('recruit_examine',$_W['aid'],$first,'招聘审核通知',$content,$status,$remark,$time);
            } else {
                //招聘中
                pdo_update(PDO_NAME."recruit_recruit",['status'=>4],['id'=>$recruitId]);
                $tip = '正在招聘中';
            }
            //根据发布方发布模板消息   招聘类型:1=个人招聘,2=企业招聘
            if($recruit['recruitment_type'] == 1){
                //发送模板消息给用户
                $nickname = pdo_getcolumn(PDO_NAME."member",['id'=>$recruit['release_mid']],'nickname');
                $message = [
                    'first'   => "尊敬的{$nickname}" ,
                    'type'    => '发布招聘' ,//业务类型
                    'content' => "您在".date('m月d日H时i分',$recruit['create_time'])."发布的[{$recruit['title']}]招聘已支付成功，{$tip}" ,//业务内容
                    'status'  => '支付成功' ,//处理结果
                    'time'    => date('Y-m-d H:i:s' , time()) ,//操作时间
                    'remark'  => ''
                ];
                TempModel::sendInit('service',$recruit['release_mid'],$message,$_W['source']);
            }else{
                //发送模板消息给企业
                $name = pdo_getcolumn(PDO_NAME."merchantdata",['id'=>$recruit['release_sid']],'storename');
                $staffList = pdo_getall(PDO_NAME."merchantuser",['storeid'=>$recruit['release_sid'],'ismain IN'=>[1,3]],['mid','name']);
                foreach($staffList as $item){
                    $message = [
                        'first'   => "尊敬的{$item['name']}" ,
                        'type'    => '发布招聘' ,//业务类型
                        'content' => "[{$name}]在".date('m月d日H时i分',$recruit['create_time'])."发布的[{$recruit['title']}]招聘已支付成功，{$tip}" ,//业务内容
                        'status'  => '支付成功' ,//处理结果
                        'time'    => date('Y-m-d H:i:s' , time()) ,//操作时间
                        'remark'  => ''
                    ];
                    TempModel::sendInit('service',$item['mid'],$message,$_W['source']);
                }
            }
        }
    }
    /**
     * Comment: 导出简历 —— 列表导出
     * Author: zzw
     * Date: 2021/2/1 14:52
     * @param $list
     */
    public static function exportResumeList($list){
        //列表信息处理
        foreach($list as &$item){
            //性别信息处理   性别:2=男，3=女
            if($item['gender'] == 2) $item['gender_text'] = '男';
            else if($item['gender'] == 2) $item['gender_text'] = '女';
            else $item['gender_text'] = '';
            //上岗状态:1=随时上岗,2=一周之内,3=一月之内,4=考虑中,5=无换岗意向
            switch ($item['work_status']){
                case 1: $item['work_status_text'] = '随时上岗';break;
                case 2: $item['work_status_text'] = '一周之内';break;
                case 3: $item['work_status_text'] = '一月之内';break;
                case 4: $item['work_status_text'] = '考虑中';break;
                case 5: $item['work_status_text'] = '无换岗意向';break;
                default: $item['work_status_text'] = '';
            }
            //工作类型：1=全职，2=兼职
            if($item['job_type'] == 1) $item['job_type_text'] = '全职';
            else $item['job_type_text'] = '兼职';
            //删除不需要的内容
            unset($item['id'],$item['avatar'],$item['gender'],$item['work_status'],$item['job_type'],$item['create_time']);
        }
        //简历导出
        self::exportResume($list);
        exit();
    }
    /**
     * Comment: 导出简历 —— 单个简历导出
     * Author: zzw
     * Date: 2021/2/1 15:24
     * @param $info
     */
    public static function exportResumeInfo($info){
        $data['name'] = $info['name'];
        $data['phone'] = $info['phone'];
        //获取工作经验信息
        if($info['experience_label_id'] > 0) $data['experience'] = pdo_getcolumn(PDO_NAME."recruit_label",['id'=>$info['experience_label_id']],'title');
        else $data['experience'] = '无工作经验';
        //最高学历
        $data['education'] = pdo_getcolumn(PDO_NAME."recruit_label",['id'=>$info['education_label_id']],'title');
        //期望薪资
        if($info['job_type'] == 1) $data['expect_salary'] = $info['expect_salary_min'].'元/月'.' ~ '.$info['expect_salary_max'].'元/月';
        else $data['expect_salary'] = $info['expect_salary_min'].'元/天'.' ~ '.$info['expect_salary_max'].'元/天';
        //期望工作区域
        $areaName = tablename(PDO_NAME.'area');
        $sql = "SELECT concat(
        (SELECT name FROM ".$areaName." WHERE id = ".$info['expect_work_province']." ),
        CASE WHEN ".$info['expect_work_city']." > 0 THEN concat('.',(SELECT name FROM ".$areaName." WHERE id = ".$info['expect_work_city']." ))
             ELSE ''
        END,
        CASE WHEN ".$info['expect_work_city']." > 0 AND ".$info['expect_work_area']." > 0 THEN concat('.',(SELECT name FROM ".$areaName." WHERE id = ".$info['expect_work_area']." ))
             ELSE ''
        END) as expect_work_address FROM".$areaName;
        $data['expect_work_address'] = pdo_fetchcolumn($sql);
        //性别信息处理   性别:2=男，3=女
        if($info['gender'] == 2) $data['gender_text'] = '男';
        else if($info['gender'] == 2) $data['gender_text'] = '女';
        else $info['gender_text'] = '';
        //上岗状态:1=随时上岗,2=一周之内,3=一月之内,4=考虑中,5=无换岗意向
        switch ($info['work_status']){
            case 1: $data['work_status_text'] = '随时上岗';break;
            case 2: $data['work_status_text'] = '一周之内';break;
            case 3: $data['work_status_text'] = '一月之内';break;
            case 4: $data['work_status_text'] = '考虑中';break;
            case 5: $data['work_status_text'] = '无换岗意向';break;
            default: $data['work_status_text'] = '';
        }
        //工作类型：1=全职，2=兼职
        if($info['job_type'] == 1) $data['job_type_text'] = '全职';
        else $data['job_type_text'] = '兼职';

        self::exportResume([$data], $data['name'].'的简历.csv');
    }
    /**
     * Comment: 简历导出
     * Author: zzw
     * Date: 2021/2/1 15:27
     * @param        $list
     * @param string $exportTitle
     */
    private static function exportResume($list,$exportTitle = '简历列表.csv'){
        //标题列表数组
        $title = [
            'name'                => '用户姓名',
            'phone'               => '联系方式',
            'experience'          => '工作经验',
            'education'           => '教育学历',
            'expect_salary'       => '期望薪资',
            'expect_work_address' => '期望工作地区',
            'gender_text'         => '性别',
            'work_status_text'    => '上岗状态',
            'job_type_text'       => '期望工作类型',
        ];
        //导出信息
        util_csv::export_csv_2($list, $title, $exportTitle);
        exit();
    }


    /**
     * Comment: 计划任务
     * Author: zzw
     * Date: 2021/1/13 11:34
     */
    public function doTask() {
        global $_W;
        //修改所有已过期的置顶
        pdo_update(PDO_NAME."recruit_recruit",['is_top'=>0],['top_end_time <='=>time()]);
    }




}
